'use strict'
// path是node.js的路径模块，用来处理路径统一的问题
const path = require('path')

module.exports = {
  dev: {
    // Paths
    assetsSubDirectory: 'static', // 编译输出的二级目录
    assetsPublicPath: '/',// 编译发布的根目录，可配置为资源服务器域名或 CDN 域名
    //vue-cli使用这个功能是借助http-proxy-middleware插件，一般解决跨域请求api
   proxyTable: { //需要 proxyTable 代理的接口（可跨域），只能用于开发模式
      '/': {
      target: 'http://192.168.0.106:8082',//目标url地址125.46.73.42
        //target: 'http://192.168.3.8:8082',//目标url地址125.46.73.42
       changeOrigin: true,// 指示是否跨域
      pathRewrite: {
        '^/': '' //通过pathRewrite重写地址，将接口请求的时候前缀去除
      }
     },
     '/ws/*': {
       target: 'ws://192.168.0.106:8082', //设置调用的接口域名和端口
       ws: true
     }
    },
    // Various Dev Server settings
    host: 'localhost', // 主机名 将 host 改成 0.0.0.0,支持手机访问
    port: 8080, //运行测试页面的端口，可以自行更改
    autoOpenBrowser: true,////想让浏览器自动打开,只需将false改为true即可
    errorOverlay: true,
    notifyOnErrors: true,
    poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
    devtool: 'eval-source-map',
    cacheBusting: true,
    cssSourceMap: false,
  },
  // 下面是build也就是生产编译环境下的一些配置
  build: {
    // 下面是相对路径的拼接，假如当前跟目录是config，那么下面配置的index属性的属性值就是dist/index.html
    index: path.resolve(__dirname, '../dist/index.html'),
    // 下面定义的是静态资源的根目录 也就是dist目录
    assetsRoot: path.resolve(__dirname, '../dist'),
    //编译输出的二级目录,下面定义的是静态资源根目录的子目录static，也就是dist目录下面的static
    assetsSubDirectory: 'static',
    //编译发布的根目录，可配置为资源服务器域名或 CDN 域名
    assetsPublicPath: '/',//修改assetsPublicPath:'./' ,修改目的是为了解决js找不到的问题

    /**
     * 下面定义是否生成生产环境的sourcmap，sourcmap是用来debug编译后文件的，通过映射到编译前文件来实现
     */
    productionSourceMap: true,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',
    //下面是是否在生产环境中压缩代码，如果要压缩必须安装compression-webpack-plugin
    productionGzip: false,
    //下面定义要压缩哪些类型的文件
    productionGzipExtensions: ['js', 'css'],
    // 下面是用来开启编译完成后的报告，可以通过设置值为true和false来开启或关闭
    // 下面的process.env.npm_config_report表示定义的一个npm_config_report环境变量，可以自行设置
    bundleAnalyzerReport: process.env.npm_config_report
  }
}
